The present invention relates CDMA communication systems and, in particular, to Orthogonal Variable Spreading Factor (OVSF) codes and methods for allocating, generating and determining orthogonality of OVSF codes of different data rates used in CDMA wireless communication stations.
CDMA communication systems are well known in the art. Generally, such systems comprise communication stations which transmit and receive wireless communication signals between each other. Typically, base stations are provided which are capable of conducting wireless concurrent communications with a plurality of subscriber stations. In CDMA systems specified by the Third Generation Partnership Project (3GPP), base stations are called Node Bs, subscriber stations are called User Equipments (UEs) and the wireless interface between the Node Bs and UEs is known as the Uu interface. FIG. 3 illustrates a typical 3GPP CDMA system.
Orthogonal variable spreading factor (OVSF) codes provide an orthogonal code set of variable spreading factors. In the prior art, methods exist for allocating a set of OVSF codes of different data rates employing Walsh codes of variable length. The code assignment is made on the basis of channel data rates in a manner that results in improved utilization of the available frequency spectrum.
An alternative method to obtain OVSF codes based on the code tree structure is based on the modified Hadamard transformation, which requires two indices to indicate a specific code, (i.e., spreading factor and code number). In order to handle the code allocation process, an ASSIGNED list and a BUSY list are conventionally generated.
These prior art methods have drawbacks in that they require a large amount of memory to store a large number of codes, or require fast processing speeds to generate the codes or effectively allocate the available codes.
Communication stations for a CDMA system include a code indexing system and method for orthogonal variable spreading factor (OVSF) codes that introduces a single number mapped to each code. The new code number itself not only provides the code signature, but it is also used for the OVSF code generation. In addition, it provides easy and fast generation of the available code list without the help of a look-up table. This capability improves the dynamic code assignment.
In general, each communication station is configured with a processor and an associated memory device so that OVSF codes are selected from a set of Walsh codes by using an index value p where p represents the (p+1)xe2x88x922ith Walsh code of the ith layer of Walsh codes where i is an integer such that 2ixe2x89xa6p less than 2i+1. Accordingly the memory device includes an index P for the code values p. Preferably, the OVSF code is selected on the basis of a spreading factor SF which is a power of 2 and a Walsh code is selected having an associated index p where SFxe2x89xa6p less than 2SF.
The relative orthogonality of a selected Walsh code of layer i represented by index value p with another Walsh code of layer j represented by an index value q is determined by comparing the binary forms of p and q. The binary form of p is a sequence of i significant binary digits and the binary form of q is a sequence of j significant binary digits. The represented Walsh codes are determined to be not orthogonal if either the binary form of p is the same as the i most significant binary digits of the binary form of q or the binary form of q is the same as the j most significant binary digits of the binary form of p.
A selected Walsh code represented by index value p is easily generated based upon the sequence of significant binary digits representing the binary form of p. Accordingly, the binary form of p is preferably the index P value stored in the memory device of the communication station. The selected Walsh code is generated as the Kronecker Product of i Walsh codes represented by index values 2 and 3 correspondingly to the sequence of i significant binary digits of the binary form of p where each binary digit 0 corresponds to the Walsh code of index value 2 and each binary digit 1 corresponds to the Walsh code of index value 3.
Alternatively, the selected Walsh code is generated by the Kronecker product of two Walsh codes represented by index values q and r of respective layers of j and k where j+k=i. In such case, the binary form of p is the same as the binary form of q concatenated with the binary forms of (rxe2x88x922k). Thus the processor is preferably configured to use the binary form of q concatenated with the binary forms of (rxe2x88x922k) as the binary form of p to generate a selected Walsh code.
In general, the processor of the communication station is configured to use and select OVSF codes based upon a spreading factor SF where SF is a positive power of 2, using an index value p from a set of codes where for each integer p greater than 3 the corresponding code is defined by C(p)=C(m+2){circle around (xc3x97)}C(k), with p=2xc2x7k+m, where k and m are integers with m=0 or 1. The codes corresponding to p=1, 2 or 3 are C(1)=[1], C(2)=[1, 1], and C(3)=[1, xe2x88x921]. Accordingly, p represents the (p+1)xe2x88x922ith code of an ith layer of codes for SF=2i where i is the unique integer such that 2ixe2x89xa6p less than 2i+1.